#ifndef __CLOTHING_DATA_H__
#define __CLOTHING_DATA_H__

#include <cstdint>

namespace PocketSurvival
{
    enum class ClothingSlot
    {
        Head,
        Torso,
        Legs,
        Feet,

        End
    };

    struct ClothingData
    {
        constexpr inline ClothingData(
            int32_t index,
            int32_t displayIndex,
            ClothingSlot slot,
            float armorProtection,
            float sturdiness,
            float insulation,
            float movementSpeedFactor,
            float steedMovementSpeedFactor,
            float densityModifier,
            bool isOuter,
            bool canBeDyed,
            int32_t layer,
            int32_t playerLevelRequired) : Index(index),
                                           DisplayIndex(displayIndex),
                                           Slot(slot),
                                           ArmorProtection(armorProtection),
                                           Sturdiness(sturdiness),
                                           Insulation(insulation),
                                           MovementSpeedFactor(movementSpeedFactor),
                                           SteedMovementSpeedFactor(steedMovementSpeedFactor),
                                           DensityModifier(densityModifier),
                                           IsOuter(isOuter),
                                           CanBeDyed(canBeDyed),
                                           Layer(layer),
                                           PlayerLevelRequired(playerLevelRequired) {}

        int32_t Index;
        // 显示索引
        int32_t DisplayIndex;

        ClothingSlot Slot;
        // 防护
        float ArmorProtection;
        // 耐久度
        float Sturdiness;
        // 隔热
        float Insulation;
        // 移动速度系数
        float MovementSpeedFactor;
        // 坐骑移动速度系数
        float SteedMovementSpeedFactor;
        // 密度
        float DensityModifier;
        // 是否外部的
        bool IsOuter;
        // 能否染色
        bool CanBeDyed;
        // 层次
        int32_t Layer;
        // 需求等级
        int32_t PlayerLevelRequired;
    };

} // namespace PocketSurvival

#endif
